package com.canyou.system.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.canyou.system.entity.dict.ChildDictVO;
import com.canyou.system.entity.dict.DictVO;
import com.canyou.system.entity.dict.ParentDictVO;
import com.canyou.system.model.Dict;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 数据字典 Mapper 接口
 * </p>
 *
 * @author oyj
 * @since 2021年11月16日
 */
public interface DictMapper extends BaseMapper<Dict> {
    /**
     * 获取子级分页列表
     *
     * @param page
     * @param name
     * @param parentId
     * @return
     */
    IPage<ChildDictVO> getChildPage(@Param("page") IPage<ChildDictVO> page, @Param("name") String name, @Param("parentId") Integer parentId);

    /**
     * 获取父级分页列表
     *
     * @param page
     * @param name
     * @param type
     * @return
     */
    IPage<ParentDictVO> getParentPage(@Param("page") IPage<ParentDictVO> page, @Param("name") String name, @Param("type") String type);

    /**
     * 获取字典数据数组
     *
     * @param type 字典类型
     * @return
     */
    List<DictVO> getDictList(@Param("type") String type);

    /**
     * 根据字典类型和值获取字典名称
     *
     * @param type
     * @param value
     * @return
     */
    String getDictName(@Param("type") String type, @Param("value") Integer value);

    /**
     * 根据字典类型和名称获取字典值
     *
     * @param type
     * @param name
     * @return
     */
    Integer getDictValue(@Param("type") String type, @Param("name") String name);
}
